package demo03.Stream;
/*
    练习:集合元素处理（传统方式）
        现在有两个ArrayList集合存储队伍当中的多个成员姓名，要求使用传统的for循环（或增强for循环）依次进行以下若干操作步骤：
        1. 第一个队伍只要名字为3个字的成员姓名；存储到一个新集合中。
        2. 第一个队伍筛选之后只要前3个人；存储到一个新集合中。
        3. 第二个队伍只要姓张的成员姓名；存储到一个新集合中。
        4. 第二个队伍筛选之后不要前2个人；存储到一个新集合中。
        5. 将两个队伍合并为一个队伍；存储到一个新集合中。
        6. 根据姓名创建Person对象；存储到一个新集合中。
        7. 打印整个队伍的Person对象信息。
 */

import java.util.ArrayList;

public class Demo01StreamTest {
    public static void main(String[] args) {
        //传统方式
        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add("迪丽热巴");
        arrayList.add("宋远桥");
        arrayList.add("苏星河");
        arrayList.add("石破天");
        arrayList.add("石中玉");
        arrayList.add("老子");
        arrayList.add("庄子");
        arrayList.add("洪七公");

        ArrayList<String> arrayList1 = new ArrayList<>();
        int count = 0;
        for (String name : arrayList) {
            if (name.length() == 3 && count < 3) {
                arrayList1.add(name);
                count++;
            }
        }

        ArrayList<String> two = new ArrayList<>();
        two.add("古力娜扎");
        two.add("张无忌");
        two.add("赵丽颖");
        two.add("张三丰");
        two.add("尼古拉斯赵四");
        two.add("张天爱");
        two.add("张二狗");
        count = 0;
        ArrayList<String> two1 = new ArrayList<>();
        for (String name : two) {
            count++;
            if (name.startsWith("张") && count >= 2) {
                two1.add(name);
            }
        }
        ArrayList<String> conbine = new ArrayList<>();
/*        for (String name1 : arrayList1) {
            conbine.add(name1);
        }
        for (String name2 : two1) {
            conbine.add(name2);
        }*/
        conbine.addAll(arrayList1);
        conbine.addAll(two1);

        ArrayList<Person> list=new ArrayList<>();
        for (String name : conbine) {
            list.add(new Person(name));
        }
        for (Person person : list) {
            System.out.println(person);
        }

    }
}
